<?php

require_once(BaseConfig::LoadClass('objeto_base.class.php'        ));
require_once(BaseConfig::LoadClass('filtro.class.php'             ));
require_once(BaseConfig::LoadClass('abc.class.php'                ));
require_once(BaseConfig::LoadClass('plugin_abc.class.php'         ));
require_once(BaseConfig::LoadClass('cotizador_extendido.class.php'));

class CPAna extends ObjetoBase {
  var $intIdMun;
  var $intIdEdo;
  var $intIdCP ;
  
  function CPAna($intIdCP = 0) {
    $arrMapaDatos = Array();
    
    $arrMapaDatos['cp'    ] = Array('NombreVariable' => 'intIdCP' , 'TipoVariable' => 'I');
    $arrMapaDatos['id_edo'] = Array('NombreVariable' => 'intIdEdo', 'TipoVariable' => 'N');
    $arrMapaDatos['id_mun'] = Array('NombreVariable' => 'intIdMun', 'TipoVariable' => 'N');
    
    $this->__ArmarDatosPrivados('cat_cp_ana', $arrMapaDatos, 'cp');
    $this->SeleccionarPorIndice($intIdCP);
  }
}

class FiltroCPANA extends Filtro {
  function FiltroCPANA() {
    $arrProceso['id_edo'] = "Estado";
    
    $arrReferencias["id_edo"]["tabla"]["nombre"] = "cat_estados_ana";
    $arrReferencias["id_edo"]["tabla"]["indice"] = "id_edo";
    $arrReferencias["id_edo"]["tabla"]["desc"  ] = "nombre";
    
    parent::CrearFiltro("cat_cp_ana", "cp", $arrProceso, "Busqueda", "", "nombre ASC", "CPANA", $arrReferencias);
  }
}

class PluginABC_CPANA extends PluginABC {
  function PluginABC_CPANA() {
    $this->strNombreBoton   = "Obtener Codigos Postales ANA desde WEB Service";
    $this->bolLlevaDosPasos = false;
  }
  
  function EjecutarPlugin() {
    Variables::SmallTimeLap(true, "PluginEjec");
    $oCotizador = new CotizadorAna();
    $oConecta = new Conecta();
//    $oConecta->Consulta("TRUNCATE TABLE cat_cp_ana");
    
    $oCPANA = new CPAna();
    $oCPANA->__strNombreIndice = "";
    $oCPANA->__arrMapaTipos["cp"] = "N";
    
    $strRes  = "";
    $strConsulta  = "SELECT * FROM cat_municipios_ana ";
//    $strConsulta .= "WHERE id_edo IN (7, 8) ORDER BY id_edo ASC, id_mun ASC";
    $strConsulta .= "WHERE id_edo = 32 ORDER BY id_edo ASC, id_mun ASC";
//    $strConsulta .= "WHERE id_edo = 21 and id_mun between 201 and 250 ORDER BY id_edo ASC, id_mun ASC";
    $oConecta->Consulta($strConsulta);
    $arrEdos = $oConecta->GetCompleteRes();
    
    $intTotRes = 0;
    $ijk = 0;
    foreach($arrEdos as $arrInfoEdo) {
      $intIdEdo = $arrInfoEdo["id_edo"];
      $intIdMun = $arrInfoEdo["id_mun"];
      set_time_limit(20);
      $ijk++;
      $oCotizador->ObtenerCatalogoCPANA($intIdEdo, $intIdMun);
      $arrRespuesta = $oCotizador->Parse_ObtenerCatalogoCPANA();
      foreach($arrRespuesta as $intIdCP => $strNombreCP) {
        $oCPANA->LimpiarObjeto();
        $oCPANA->intIdMun  = $intIdMun;
        $oCPANA->intIdEdo  = $intIdEdo;
        $oCPANA->intIdCP   = $strNombreCP;
        $oCPANA->GuardarObjeto();
        $intTotRes++;
      }
    }
    $strRes .= "</table>";
    
    $strRes = "<tr><th>(Tiempo: " . sprintf("%0.4f", Variables::SmallTimeLap(false, "PluginEjec")) . " segundos)</th></tr>" . $strRes;
    $strRes = "<tr><th>Se cargaron $intTotRes datos ($ijk):</th></tr>" . $strRes;
    $strRes = "<table class='TablaReportes'>" . $strRes;
    
    return $strRes;
  }
}

class ABC_CPANA extends ABC_Base {
  function ABC_CPANA() {
    $strClaseBase     = "CPAna"      ;
    $strClaseFiltro   = "FiltroCPANA";
    $strCampoMostrar  = "cp"         ;
    $strOpcionListado = "abc_cp_ana" ;
    $strOpcionGuardar = "abc_cp_ana" ;
    $strClaseCarga    = ""           ;

    $arrNombresColumnas = array();
    $arrNombresColumnas['id_edo'] = "Estado"   ;
    $arrNombresColumnas['id_mun'] = "Municipio";

    $arrReferencias = array();
    $arrReferencias["id_edo"]["tabla"]["nombre"] = "cat_estados_ana";
    $arrReferencias["id_edo"]["tabla"]["indice"] = "id_edo";
    $arrReferencias["id_edo"]["tabla"]["desc"  ] = "nombre";
    
    $arrPlugIns               = array();
    $arrPlugIns["Globales"][] = "PluginABC_CPANA";
    
    $this->Inicializar($strClaseBase, $arrNombresColumnas, $strOpcionListado, $strOpcionGuardar, $strCampoMostrar, $strClaseFiltro, $arrReferencias, "", $strClaseCarga);
    $this->arrPlugIns = $arrPlugIns;
    
    $this->bolABCLista             = true ;
    $this->bolABCListaOcultarTD    = true ;
    $this->bolPosibleNuevoElemento = false;
    $this->intTipoGuardado         = 1    ;
    $this->intNumeroRes            = 20   ;
    $this->bolSoloLectura          = true ;
    $this->bolOcultarTituloEnLista = true ;
    $this->bolABCListaMostrarInfo  = true ;
  }
}

?>